JAVA programming language is an interpreted language. A JAVA instruction file is generated by compiling JAVA source codes, and the JAVA instruction file generated is interpreted and executed in a JAVA virtual machine (JVM). The operation mechanism of interpreting and executing makes the JAVA source code easily decompiled. At present, there are many decompilation tools with the effects of which are very efficient, and the decompilation tools makes any JAVA software user more easily decompiles and reconstructs the source code of products. As a result, any authorization certificate license based on the JAVA programming language becomes meaningless.
Therefore, in the software protection field based on the JAVA programming language, an important problem that needs to be resolved is to ensure that the JAVA software program cannot be decompiled and reconstructed or to increase difficulty of decompiling and reconstructing.